Development of a complex software system usually involves defining an object model that represents the desired structure and functionality of objects to be implemented in an application framework. In business software environments, these objects are sometimes referred to as business objects, which can be defined according to a node structure that may specify corresponding data elements and behaviors to be associated with the objects.
Once the object model is defined, developers are able to produce code for the application framework that implements the defined objects. The application framework acts as a service provider and generally provides the back-end level functionality for the software system. Once completed, developers are then able to code the front-end aspects of the software system, such as the user interface portion of the system providing specific application contexts and usage scenarios, which hooks into and depends upon the back-end level functionality.
Because the back-end functionality of such systems is designed to support diverse front-end components, the back-end is often not aware of the front-end's specific application context and usage scenario when responding to a service call from the front-end. This lack of awareness can lead to unfavorable message handling issues for the front-end component in connection with stateful messages, which are relevant beyond the period of the particular call.
For example, the back-end reports messages (e.g., error, warning, information, success) to the front-end that are relevant to the back-end's processing of a particular call from the front-end. But upon completion of the processing of the call, the back-end may become aware of a change in a state upon which the reporting of an stateful message was based, that invalidates the stateful message (e.g., a warning message caused by a particular event may no longer be valid when a subsequent event occurs).
The back-end does not report to the front-end that the message is no longer valid, because the back-end is not aware of the front-end's ability or desire to receive such an updated message. Thus, in situations in which the front-end is available to receive the updated message before passing the invalid message on to an end user, the front-end unfortunately displays the invalid message to the end user.
Accordingly, there is a need in the art for a system and method that reduces the unfavorable message handling issues between front-end and back-end system components.